]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
5 years agoscreenshot: Grab screenshot during paint on X11
Jonas Ådahl [Mon, 14 Dec 2020 14:11:37 +0000 (15:11 +0100)]
screenshot: Grab screenshot during paint on X11

We might not be able to directly paint the stage to an offscreen, if
there currently is a fullscreen unredirected window. To make it possible
to take a screenshot in this situation, disable unredirecting, queue a
frame, and take a screenshot after having painted that frame, before we
go back being unredirected.

Don't do this on Wayland because it's a waste.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1453
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1534>

5 years agoblur-effect: Use ClutterBlurNode
Georges Basile Stavracas Neto [Wed, 9 Dec 2020 22:20:16 +0000 (19:20 -0300)]
blur-effect: Use ClutterBlurNode

With ClutterBlurNode available, we can remove our own implementation
and delegate the blur shader and framebuffers. This simply replaces
the pair of layer nodes (vblur and hblur) with a ClutterBlurNode,
and removes all dead code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1528>

5 years agoUpdate Romanian translation
Florentina Mușat [Sat, 12 Dec 2020 18:37:02 +0000 (18:37 +0000)]
Update Romanian translation

5 years agodash: Allow icon sizes equal to the available space
Georges Basile Stavracas Neto [Thu, 10 Dec 2020 22:21:30 +0000 (19:21 -0300)]
dash: Allow icon sizes equal to the available space

When checking for a suitable icon size, Dash currently checks which
of the hardcoded icon sizes is smaller than the calculated available
size.

On some circumstances, however, when the calculated available size
is exactly equal to the hardcoded icon sizes, Dash selects a smaller
size. This cascades (the next icon size is exactly the smaller size,
etc) and ends up with always Dash selecting smallest size available,
even with plenty of available space.

Check if the calculated available size is smaller or equal to the
hardcoded icon sizes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1533>

5 years agoRevert "appDisplay/baseAppView: Cleanup animate()"
Georges Basile Stavracas Neto [Fri, 11 Dec 2020 15:55:23 +0000 (12:55 -0300)]
Revert "appDisplay/baseAppView: Cleanup animate()"

This reverts commit cd8269185. It turns out this seemingly
harmless cleanup introduced a regression:

 * Open overview
 * Press Meta+A twice
 * Close overview
 * Press Meta+A
 * Enjoy an invisible grid

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3451

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1532>

5 years agoci: Use correct variable name
Florian Müllner [Fri, 11 Dec 2020 14:59:11 +0000 (15:59 +0100)]
ci: Use correct variable name

Whoops, the last changes accidentally changed the CI_COMMIT_REF_NAME
variable to something that's not actually defined.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1531>

5 years agoci: Only fetch history for branch tips
Florian Müllner [Fri, 11 Dec 2020 00:36:09 +0000 (01:36 +0100)]
ci: Only fetch history for branch tips

We don't need any history, so we can save a bit of bandwidth by
omitting it, and only fetch the refs we are actually interested in.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1529>

5 years agoci: Fix checking out mutter for tag pipelines
Florian Müllner [Thu, 10 Dec 2020 23:49:21 +0000 (00:49 +0100)]
ci: Fix checking out mutter for tag pipelines

$CI_COMMIT_REF_NAME can be a branch name or a tag, depending on the
pipeline, but our checkout script only deals with the former at the
moment.

Address this by rather than looking for a remote branch name, just
try to fetch the ref like we do for merge request pipelines.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1529>

5 years agoci: Improve checkout script output
Florian Müllner [Fri, 11 Dec 2020 13:30:05 +0000 (14:30 +0100)]
ci: Improve checkout script output

We are currently not very good at communicating what's going in,
in particular for non-merge request pipelines where the output
is usually just "Using origin/master instead" (instead of what?).

Improve this by consistently communicate what we are looking for,
whether we found it, and what we end up doing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1529>

5 years agolookingGlass: Port to paint nodes
Georges Basile Stavracas Neto [Mon, 29 Jun 2020 21:01:44 +0000 (18:01 -0300)]
lookingGlass: Port to paint nodes

Override vfunc_paint_node(), and add paint nodes to the
root node instead of directly calling CoglFramebuffer APIs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1339>

5 years agoblur-effect: Port to paint nodes
Georges Basile Stavracas Neto [Mon, 29 Jun 2020 18:35:02 +0000 (15:35 -0300)]
blur-effect: Port to paint nodes

Port the blur effect to the new ClutterEffect.paint_node() vfunc.
Update the function names to match what they do, e.g. "apply_blur()"
now creates the blur subtree and thus was appropriately renamed to
"create_blur_nodes()".

There are 3 subtrees that can be generated by the blur effect:

 1. Actor mode (full subtree; no cache)

      Root
       |
       |
    Layer (brightness)
       |
    Layer (horizontal blur)
       |
    Layer (vertical blur)
       |
    Layer (actor)
       |
    Transform (downscale)
       |
     Actor

 2. Actor mode (partial subtree; cached contents)

      Root
       |
     Pipeline
  (final result)

 3. Background mode

      Root
       |-----------------------
       |                       |
    Layer (brightness)        Actor
       |
    Layer (horizontal blur)
       |
    Layer (vertical blur)
       |
    Layer (background)
       |
      Blit

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1339>

5 years agoworkspacesView: Don't update scroll position when allocating
Jonas Ådahl [Wed, 9 Dec 2020 18:32:01 +0000 (19:32 +0100)]
workspacesView: Don't update scroll position when allocating

Updating scroll position may have significant side effects, e.g.
switching workspace; this should never happen during allocation, as
we're in the middle of painting a frame. So, put it in an idle callback
if we're doing it from an allocation to have the side effects happen the
right time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1527>

5 years agost/viewport: Don't trigger relayout when picking
Jonas Ådahl [Wed, 9 Dec 2020 18:02:55 +0000 (19:02 +0100)]
st/viewport: Don't trigger relayout when picking

Calling clutter_actor_get_allocation_box() might still implicitly
trigger a full relayout, which has many side effects not expected to
occur during picking. Avoid a particular case which caused a reentry
issue by using the current allocation instead of forcing a relayout when
picking in StViewport.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1436
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1527>

5 years agoClarify comments on ConditionEnvironment placement
Hans Ulrich Niedermann [Sun, 18 Oct 2020 17:55:13 +0000 (19:55 +0200)]
Clarify comments on ConditionEnvironment placement

Clarify the comments on ConditionEnvironment= by mentioning that a
ConditionEnvironment= line must be located in the [Unit] section.

The comments suggesting using ConditionEnvironment= themselves are
in the [Service] section, which implicitly and wrongly suggests
that ConditionEnvironment= could be defined right there as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1472>

5 years agoCorrect the systemd version required for ConditionEnvironment=
Hans Ulrich Niedermann [Fri, 23 Oct 2020 08:42:38 +0000 (10:42 +0200)]
Correct the systemd version required for ConditionEnvironment=

According to systemd's NEWS file, the ConditionEnvironment= setting
has only been introduced in systemd 246, not in 245 like the comment
in the services files claimed.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1472#note_942075

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1472>

5 years agoshellDBus: Remove stray backslashes in D-Bus interface
Tom Levy [Wed, 9 Dec 2020 12:34:18 +0000 (12:34 +0000)]
shellDBus: Remove stray backslashes in D-Bus interface

Those are left-over from when the interfaces were defined as inline
strings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1526>

5 years agodbusServices/screensaver: Split out public ScreenSaver service
Florian Müllner [Fri, 4 Dec 2020 19:40:13 +0000 (20:40 +0100)]
dbusServices/screensaver: Split out public ScreenSaver service

Commit 799bbdb50 split out the public Fdo notification service, so
that any app with permission to talk to org.freedesktop.Notifications
will in fact be limited to that service.

To a somewhat lesser extent this applies to the org.gnome.ScreenSaver
service as well, which some applications still use instead of the
Inhibit portal.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3452

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1520>

5 years agoworkspace: Lower maximum window preview size again
Florian Müllner [Mon, 7 Dec 2020 14:24:37 +0000 (15:24 +0100)]
workspace: Lower maximum window preview size again

In commit 1218e68 we allowed full-sized window previews under the
assumption that we had enough other clues (like the vignette effect)
to differentiate the overview from the regular session.

That didn't hold up in testing, so make the maximum preview size
slightly smaller again.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3464

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1525>

5 years agomagnifier: Stop exposing D-Bus interface
Florian Müllner [Sun, 6 Dec 2020 05:00:10 +0000 (06:00 +0100)]
magnifier: Stop exposing D-Bus interface

Screen magnification is the compositor's business, not that of "random"
unprivileged tools. And for cases where a more specialised behavior is
wanted, an extension likely does a better job than a consumer of the
D-Bus API.

In addition to that, exporting the interface has been broken for an
unknown time, because the object that holds the implementation isn't
referenced and thus ends up being garbage collected, whoops.

And last but not least, this gets rid of the last public D-Bus name
that isn't clearly in the system namespace (org.gnome.Shell,
org.gnome.Mutter, org.gtk).

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3452

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1523>

5 years agomain: Stop owning the org.gnome.Panel name
Florian Müllner [Fri, 4 Dec 2020 21:02:55 +0000 (22:02 +0100)]
main: Stop owning the org.gnome.Panel name

This is a relict from the pre-3.0 days, when it was common to
replace a running GNOME 2 session with gnome-shell. There has
been no good reason to claim the name for many years, time to
drop it.

If someone really wants to run gnome-panel alongside the shell,
they probably know what they are doing. Or cannot be helped anyway.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1521>

5 years agolookingGlass: Sort extensions alphabetically
Florijan Hamzic [Thu, 3 Dec 2020 22:36:33 +0000 (23:36 +0100)]
lookingGlass: Sort extensions alphabetically

Extensions are currently listed in random order, which is hardly
user-friendly. Instead, sort them alphabetically to make the list
easier to parse.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1516>

5 years agotheme: Add some horizontal padding to folder view
Georges Basile Stavracas Neto [Thu, 3 Dec 2020 17:26:43 +0000 (14:26 -0300)]
theme: Add some horizontal padding to folder view

So that folders also have a slight fade when scrolling. Do that by actually
dropping the CSS to remove the inherited horizontal padding.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1519>

5 years agoappDisplay/baseAppView: Reinstate fade effect
Georges Basile Stavracas Neto [Thu, 3 Dec 2020 17:16:16 +0000 (14:16 -0300)]
appDisplay/baseAppView: Reinstate fade effect

Bring back the fade effect that was dropped by commit 4e05bcd3b6784.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1519>

5 years agoappDisplay/baseAppView: Also consider its own content box when adapting
Georges Basile Stavracas Neto [Thu, 3 Dec 2020 16:01:29 +0000 (13:01 -0300)]
appDisplay/baseAppView: Also consider its own content box when adapting

Otherwise setting margins and paddings from CSS may result in the grid
being adapted to the wrong size.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1519>

5 years agoappDisplay/baseAppView: Cleanup animate()
Georges Basile Stavracas Neto [Wed, 2 Dec 2020 21:02:46 +0000 (18:02 -0300)]
appDisplay/baseAppView: Cleanup animate()

Simplify the opacity dance to simply setting it to the initial value
before animating (0 when animating in, and 255 when animating out),
and to the final value after the spring animation is done (vice-versa).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agoiconGrid/iconGrid: Wait for icon sizes before running spring animation
Georges Basile Stavracas Neto [Wed, 2 Dec 2020 20:43:13 +0000 (17:43 -0300)]
iconGrid/iconGrid: Wait for icon sizes before running spring animation

To run the spring animation, IconGrid uses the transformed position and size
of the icons. This works okay when IconGridLayout doesn't need to update the
icon sizes, but looks bad when IconGridLayout selects a different icon size.

Wait for the icon sizes to be recalculated, and the icons  beallocated, before
running the spring animation. If no icon size update is pending, run the spring
animation directly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agoappDisplay/baseAppView: Update page indicators on page-changed
Georges Basile Stavracas Neto [Wed, 2 Dec 2020 18:58:49 +0000 (15:58 -0300)]
appDisplay/baseAppView: Update page indicators on page-changed

The number of pages doesn't depend on the allocated size anymore. Move updating
page indicators from BaseAppView.adaptToSize() to a IconGrid::pages-changed
callback.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agoiconGrid/iconGridLayout: Simplify _findBestIconSize()
Georges Basile Stavracas Neto [Tue, 1 Dec 2020 20:58:09 +0000 (17:58 -0300)]
iconGrid/iconGridLayout: Simplify _findBestIconSize()

The 'bestSize' variable isn't necessary anymore, remove it in favor of
simply returning the 'size' or, if no suitable size found, IconSize.TINY.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agoappDisplay/baseAppView: Use a separate flag for animated indicators
Georges Basile Stavracas Neto [Wed, 2 Dec 2020 21:35:38 +0000 (18:35 -0300)]
appDisplay/baseAppView: Use a separate flag for animated indicators

In the future, both AppDisplay and FolderView will be horizontal, and thus
using the orientation to determine whether to use animated indicators won't
be enough.

Use a different flag to control that, and make FolderView not use animated
page indicators.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agopageIndicator/animatedPageIndicators: Implement vertical animation
Georges Basile Stavracas Neto [Wed, 2 Dec 2020 21:33:26 +0000 (18:33 -0300)]
pageIndicator/animatedPageIndicators: Implement vertical animation

It is basically the same of animating horizontally, except on the Y axis, and
based on the height of the indicators.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agoappDisplay: Properly destroy SwipeTracker on destroy
Georges Basile Stavracas Neto [Thu, 26 Nov 2020 18:10:11 +0000 (15:10 -0300)]
appDisplay: Properly destroy SwipeTracker on destroy

SwipeTracker connects to signals of the stage, but doesn't disconnect on
destroy, leaving them hanging and potentially running callbacks for
destroyed objects.

This is visible when removing a folder by dragging all icons out, and
running the swipe gestures, which will produce a bunch of warnings.

Explicitly destroy, remove, and disconnect the swipe tracker.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agooverviewControls: Simplify DashSpacer
Georges Basile Stavracas Neto [Fri, 27 Nov 2020 14:07:03 +0000 (11:07 -0300)]
overviewControls: Simplify DashSpacer

Make it subclass ClutterActor, since we don't need any of StWidget's
features. Pass the source actor of the bind constraint in the
constructor, and remove the extra method to set the source actor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agooverviewControls: Remove ControlsLayout
Georges Basile Stavracas Neto [Fri, 27 Nov 2020 13:59:29 +0000 (10:59 -0300)]
overviewControls: Remove ControlsLayout

ControlsLayout is a tiny layout manager whose only purpose
is emit "allocation-changed" after allocation. This signal
was listened to update the workspaces actual geometry.

However, since d66cd0d2067a, ControlsManager doesn't listen
to this signal anymore, rendering the class useless.

Remove ControlsLayout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1518>

5 years agoPost-release version bump
Florian Müllner [Wed, 2 Dec 2020 19:40:04 +0000 (20:40 +0100)]
Post-release version bump

5 years agoTag version 40.alpha
Florian Müllner [Wed, 2 Dec 2020 17:43:40 +0000 (18:43 +0100)]
Tag version 40.alpha

Update NEWS.

5 years agocleanup: Use optional chaining and ?? operator
Florian Müllner [Wed, 12 Aug 2020 18:59:01 +0000 (20:59 +0200)]
cleanup: Use optional chaining and ?? operator

Those operators have been supported since gjs switched to mozjs78
last cycle. While not ground-breaking, using it makes for a nice
cleanup here and there.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1517>

5 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 2 Dec 2020 12:54:08 +0000 (13:54 +0100)]
Updated Spanish translation

5 years agost-theme-node-drawing: Render all shadow sections with thickness > 0
Daniel van Vugt [Wed, 19 Aug 2020 11:22:51 +0000 (19:22 +0800)]
st-theme-node-drawing: Render all shadow sections with thickness > 0

In some styles the top or left sections of box-shadows would go missing
even though they had non-zero thickness. This was because the inner
local coordinates could become very slightly negative and were then
incorrectly judged to be invisible.

Negative coordinates should not be ignored because that's where the
entire top/left sections of shadow are meant to exist. It's only the
sections of shadow with zero thickness that we should skip.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1417>

5 years agomessageTray: Default to generic policy
Florian Müllner [Thu, 22 Oct 2020 18:11:14 +0000 (20:11 +0200)]
messageTray: Default to generic policy

How and if notifications are shown is controlled by NotificationPolicy
objects. But ever since 098bd45, only notification daemon sources or
notifications associated with an app are hooked up to GSettings.

The hardcoded default policy for built-in notifications (including
those provided by extensions) arguably made sense back then, but
now that the main setting has been rebranded as "Do Not Disturb"
and is exposed prominently in the calendar drop-down, following
GSettings is a better default.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3291

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1511>

5 years agoiconGrid/iconGridLayout: Make sure to always update best size
Georges Basile Stavracas Neto [Tue, 1 Dec 2020 01:14:17 +0000 (22:14 -0300)]
iconGrid/iconGridLayout: Make sure to always update best size

When selecting the best icon size for the available area, we
iterate from the biggest icon size to the smallest one, and
stop when finding a size that fits the available area.

However, the 'bestSize' variable is only updated when the
available area is positive. This is problematic in super bad
cases like when none of the icon sizes actually fit the availabe
area, which was hit with a previous iteration of this branch.

Make sure to update the best size while iterating, so that the
smallest size is selected even in such bad cases.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1510>

5 years agoiconGrid/iconGridLayout: Floor children position
Georges Basile Stavracas Neto [Thu, 26 Nov 2020 21:07:39 +0000 (18:07 -0300)]
iconGrid/iconGridLayout: Floor children position

So that we don't end up with positions misaligned from the pixel grid.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1510>

5 years agotheme: Add page padding to the icon grid
Georges Basile Stavracas Neto [Wed, 25 Nov 2020 21:52:29 +0000 (18:52 -0300)]
theme: Add page padding to the icon grid

Add padding to the app grid pages. Values adjusted as per
design feedback.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1510>

5 years agoiconGrid/iconGrid: Fill pages by default
Georges Basile Stavracas Neto [Wed, 25 Nov 2020 21:50:02 +0000 (18:50 -0300)]
iconGrid/iconGrid: Fill pages by default

Use the Clutter.ActorAlign.FILL alignment by default, which
expands the grid until max-row|column-spacing is hit. This
was the behavior we originally wanted for the icon grid, and
it's finally being realized.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1510>

5 years agoiconGrid/iconGrid: Hook page-padding with CSS
Georges Basile Stavracas Neto [Wed, 25 Nov 2020 21:42:03 +0000 (18:42 -0300)]
iconGrid/iconGrid: Hook page-padding with CSS

Add support for setting the page padding of the icon grid
through CSS. Unfortunately, each side needs to be specificied
manually, since it's not a regular padding property.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1510>

5 years agoiconGrid/iconGridLayout: Add support for page-padding
Georges Basile Stavracas Neto [Wed, 25 Nov 2020 21:39:08 +0000 (18:39 -0300)]
iconGrid/iconGridLayout: Add support for page-padding

This is a new property to control the padding around each page,
as opposed to the padding around the entire container.

Following the original design of IconGridLayout [1], changing
the page-padding property doesn't trigger relayouts; the container
is responsible for queueing a relayout appropriately.

[1] 3555550d5ec5406344ff9a0a3928624dc5679c20

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1510>

5 years agoUpdate Norwegian Bokmål translation
Kjartan Maraas [Mon, 30 Nov 2020 13:00:43 +0000 (13:00 +0000)]
Update Norwegian Bokmål translation

(cherry picked from commit 0936821ee3a70ad728e27fd324c1440a1c90ed53)

5 years agoUpdate Swedish translation
Anders Jonsson [Sat, 28 Nov 2020 22:00:27 +0000 (22:00 +0000)]
Update Swedish translation

5 years agocredentialManager: Shut up a JS warning
Florian Müllner [Wed, 28 Oct 2020 19:26:18 +0000 (20:26 +0100)]
credentialManager: Shut up a JS warning

Plain classes are private to their file, so accessing them from
another module results in the following warning:

    That property was defined with 'let' or 'const' inside the module.
    This was previously supported, but is not correct according to the
    ES6 standard.

Fix by assigning the class to a public variable instead.

(Eventually switching to ES6 modules with proper imports/exports will
fix this as well)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1512>

5 years agost-bin: Disallow st_bin_set_child with already-parented children
Daniel van Vugt [Tue, 24 Nov 2020 09:34:08 +0000 (17:34 +0800)]
st-bin: Disallow st_bin_set_child with already-parented children

Not checking for this would result in `clutter_actor_add_child`
failing, but StBin keeping a copy in `priv->child`. So later on,
`st_bin_remove` would never be called on it and this assertion
would fail and crash the whole shell:

```
static void
st_bin_destroy (ClutterActor *actor)
{
  StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (actor));

  if (priv->child)
    clutter_actor_destroy (priv->child);
  g_assert (priv->child == NULL);

```

By disallowing spurious `st_bin_set_child` calls we now prevent StBin
from entering such a corrupt state and the above assertion won't fail
anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1507>

5 years agoappDisplay: Don't update multiline for search results
Georges Basile Stavracas Neto [Mon, 16 Nov 2020 18:12:25 +0000 (15:12 -0300)]
appDisplay: Don't update multiline for search results

The grid icons in the search results page doesn't expand to
acommodate the multiline label, resulting in the multiline
label to overflow behind the list search results. However,
after 548d3b62d, it was possible to trigger this behavior
with keyboard focus.

Don't update multiline labels for search results.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1509>

5 years agoworkspace: Handle child not being present in the window slots array
Jonas Dreßler [Sat, 21 Nov 2020 23:10:56 +0000 (00:10 +0100)]
workspace: Handle child not being present in the window slots array

Adding children to the WorkspaceLayout without calling addPreview() is
not supported, so let's log an error in case that happened.

We also have to allocate that child an empty ClutterActorBox, otherwise
Clutter will complain loudly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1481>

5 years agoMake sure to allocate all children in allocate vfuncs
Jonas Dreßler [Sat, 24 Oct 2020 18:25:49 +0000 (20:25 +0200)]
Make sure to allocate all children in allocate vfuncs

Clutter expects actors overriding the allocate vfunc to allocate all
mapped children of the actor, otherwise bad things happen.

So make sure we actually allocate all our visible children in our custom
allocation functions, and since we don't want to give them a real
allocation, just pass them an empty ClutterActorBox.

It would be nice if we had a way to hide children during the allocation
process where no relayout is queued like gtk allows with
gtk_widget_set_child_visible(), then we could avoid those weird empty
ClutterActorBoxes.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3098

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1481>

5 years agoci: Bump ci-fairy template include
Florian Müllner [Tue, 24 Nov 2020 15:23:30 +0000 (16:23 +0100)]
ci: Bump ci-fairy template include

This fixes the check-merge-request job when MR branch and target branch are
on the same repo.

See
https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/66

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1508>

5 years agowindowManager: Check whether metaWindow is NULL after destroy animation
Jonas Dreßler [Sat, 24 Oct 2020 20:24:35 +0000 (22:24 +0200)]
windowManager: Check whether metaWindow is NULL after destroy animation

When logging out or terminating gnome-shell, mutter will unmanage all
open windows, triggering the window-close animation in gnome-shell and
very quickly after that emitting "kill-window-effects". That means we'll
call _destroyWindowDone() to cleanup our animation data, but at this
point the MetaWindow of the window is already gone, so we get an error
that get_meta_window() returns NULL.

Fix that by checking whether get_meta_window() returned NULL and if it
did, don't access the window.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2018

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1483>

5 years agoci: Replace only/except with rules
Jordan Petridis [Fri, 20 Nov 2020 13:54:13 +0000 (14:54 +0100)]
ci: Replace only/except with rules

only/except keywords where deperecated in favor of rules.

Since we started using GNOME/gnome-shell!1492 it introduced
a second pipeline being run for each commit.

Detached pipelines are the only way to access CI_MERGE_REQUEST_*
variables, and if we disable normal pipelines you will need to
create wip/spam MRs in order to run the tests.

This reworked rules makes it so, the normal pipeline needs manual
interaction to be started, and the detached/MR pipleines is always
run.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1503>

5 years agoci: Set some sensible defaults
Jordan Petridis [Fri, 20 Nov 2020 13:25:53 +0000 (14:25 +0100)]
ci: Set some sensible defaults

* Allow for all jobs to be cancelled if a newer commit is pushed
* Automatically retry jobs if they fail due to some infrastructure issue

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1503>

5 years agoci: Check that merge requests have the right settings
Jonas Ådahl [Fri, 20 Nov 2020 18:16:35 +0000 (19:16 +0100)]
ci: Check that merge requests have the right settings

This will catch the missing "allow write access for maintainers" check
box being checked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1506>

5 years agoci: Use ci-fairy image for commit log check
Jonas Ådahl [Fri, 20 Nov 2020 18:14:49 +0000 (19:14 +0100)]
ci: Use ci-fairy image for commit log check

It's much much smaller.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1506>

5 years agoci: Update mutter image
Florian Müllner [Fri, 20 Nov 2020 14:56:01 +0000 (15:56 +0100)]
ci: Update mutter image

Mutter now produces an image as part of its CI pipeline. Use that
instead of the now outdated manually built image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1504>

5 years agoci: Use the CI image produced by the pipeline
Florian Müllner [Fri, 20 Nov 2020 14:53:51 +0000 (15:53 +0100)]
ci: Use the CI image produced by the pipeline

The newly-added eslint_mr job still uses the manually built
extension image instead of the image that is built as part
of the pipeline.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1504>

5 years agoci: Fix check-commit-log test failure count
Jonas Ådahl [Fri, 20 Nov 2020 16:34:19 +0000 (17:34 +0100)]
ci: Fix check-commit-log test failure count

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1505>

5 years agoci: Generate junit report if project doesn't enable the registry
Jonas Ådahl [Fri, 20 Nov 2020 16:34:11 +0000 (17:34 +0100)]
ci: Generate junit report if project doesn't enable the registry

The image registry must be enabled for the CI to work, as the container
image from the upstream registry is placed (as a reference, more or
less) in the local registry.

Recently, ci-templates got a bit more helpful if this happened, and will
fail up front and generate a JUnit report with a message describing the
issue.

Update to this version.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1505>

5 years agoci: Bump ci-templates to include registry path fix
Jonas Ådahl [Fri, 20 Nov 2020 10:32:12 +0000 (11:32 +0100)]
ci: Bump ci-templates to include registry path fix

ci-templates had a bug where it failed to find the ready-built container
images on the upstream repository due to invalid assumptions about the
relationship between upstream repository and image registry. This
resulted in the container image to be rebuilt, wasting valuable CPU
cycles and storage space. Bump the included ci-templates template to
include the fix for this.

See https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/22.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1502>

5 years agost/button: Remove unused spacing member from private struct
Sebastian Keller [Thu, 29 Oct 2020 19:59:29 +0000 (20:59 +0100)]
st/button: Remove unused spacing member from private struct

It is only ever written, but never used anywhere.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1489>

5 years agost/entry: Don't set font twice on style changes
Sebastian Keller [Thu, 29 Oct 2020 19:59:21 +0000 (20:59 +0100)]
st/entry: Don't set font twice on style changes

Setting the font is already handled by _st_set_text_from_style() since
be76b19300.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1489>

5 years agoci: Use ci-templates for building image
Jonas Ådahl [Fri, 6 Nov 2020 17:59:19 +0000 (18:59 +0100)]
ci: Use ci-templates for building image

This rebuilds the automaticaly whenever the image tag changes. Whenever
something in the image needs to change, alter the installation script
and change the tag to the current date.

This removes the -s (strict) argument from js68, as it doesn't exist in
js78.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1492>

5 years agojs/shellDbus: Do not forward device IDs
Carlos Garnacho [Tue, 17 Nov 2020 14:35:15 +0000 (15:35 +0100)]
js/shellDbus: Do not forward device IDs

We already pass the device event node path for identification purposes,
we can stop doing that here.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1501>

5 years agognome-shell.doap: Make marge-bot a maintainer
Jonas Ådahl [Fri, 6 Nov 2020 17:11:00 +0000 (18:11 +0100)]
gnome-shell.doap: Make marge-bot a maintainer

This is so that the merge button can be restricted to maintainers, thus
decreasing the risk of merging using the merge button.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1491>

5 years agoci: Wait for 'check-commit-log' before continuing
Jonas Ådahl [Fri, 6 Nov 2020 17:07:07 +0000 (18:07 +0100)]
ci: Wait for 'check-commit-log' before continuing

The check-commit-log is quick, and to get a result early is helpful as
one can then more quickly check for failures via the report provided via
the JUnit report.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1491>

5 years agoci/check-commit-log: Generate JUnit report
Jonas Ådahl [Fri, 6 Nov 2020 17:02:23 +0000 (18:02 +0100)]
ci/check-commit-log: Generate JUnit report

This means the merge request will see the commit log review issues
causing the pipeline to fail without having to dig through CI log files.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1491>

5 years agoci/check-commit-log: Reverse the merge request URL check
Jonas Ådahl [Fri, 6 Nov 2020 16:59:28 +0000 (17:59 +0100)]
ci/check-commit-log: Reverse the merge request URL check

Instead of making sure there is a reference to a bug or merge request,
make sure there isn't. The reason for this is that marge-bot will always
append a merge request URL in the end of the commit message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1491>

5 years agolint: Sync configuration with gjs
Florian Müllner [Fri, 13 Nov 2020 22:52:58 +0000 (23:52 +0100)]
lint: Sync configuration with gjs

gjs updated its eslint configuration, so sync our copy.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1498

5 years agocleanup: Remove empty leading/trailing lines in blocks
Florian Müllner [Fri, 13 Nov 2020 22:52:26 +0000 (23:52 +0100)]
cleanup: Remove empty leading/trailing lines in blocks

gjs added a new rule to its eslint ruleset that forbids "block padding",
so make sure we conform to that rule before syncing up the configuration.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1498

5 years agoextensionUtils: Stop using Lang.copyProperties()
Florian Müllner [Fri, 13 Nov 2020 22:54:56 +0000 (23:54 +0100)]
extensionUtils: Stop using Lang.copyProperties()

It is now deprecated, so use object destructuring instead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1498

5 years agoUpdate Ukrainian translation
Yuri Chornoivan [Sun, 15 Nov 2020 07:59:15 +0000 (07:59 +0000)]
Update Ukrainian translation

5 years agoappDisplay: Expand titles on keyboard focus as well
Georges Basile Stavracas Neto [Fri, 13 Nov 2020 17:35:29 +0000 (14:35 -0300)]
appDisplay: Expand titles on keyboard focus as well

In addition to hover, expand wrapped app titles when keyboard
focus is in as well. This gives keyboard users a chance to
read the app name.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3333

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1496

5 years agoappDisplay: Factor out function
Georges Basile Stavracas Neto [Fri, 13 Nov 2020 17:34:22 +0000 (14:34 -0300)]
appDisplay: Factor out function

The function to update the multiline state of the title label
will be reused by the next commit, so move it into a separate
method.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1496

5 years agoappDisplay: Adjust label collapse and expand times
Georges Basile Stavracas Neto [Fri, 13 Nov 2020 17:33:32 +0000 (14:33 -0300)]
appDisplay: Adjust label collapse and expand times

As per design feedback, these times are too slow.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3333

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1496

5 years agoci: Enforce non-legacy style for new code
Florian Müllner [Mon, 9 Nov 2020 19:24:34 +0000 (20:24 +0100)]
ci: Enforce non-legacy style for new code

We have been transitioning to the new coding style for a while now,
and there has been reasonable progress. So hopefully it is not too
intrusive at this point to enforce non-legacy style for all lines
that are changed in a merge request. If it turns out to be still too
annoying, we can always reconsider and turn off the additional job.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1497

5 years agoci: Use junit output format
Florian Müllner [Sat, 7 Nov 2020 06:36:26 +0000 (07:36 +0100)]
ci: Use junit output format

Gitlab has built-in support for junit reports, so switch eslint's
output to that format.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1497

5 years agoci: Use node-js script for running eslint
Florian Müllner [Sat, 7 Nov 2020 06:11:09 +0000 (07:11 +0100)]
ci: Use node-js script for running eslint

This is unnecessary hard in shell when compared to a proper programming
language. It becomes even easier with a node-js script, as that gives us
access to the underlying ESLint module rather than just the CLI interface.

Besides that, node-js has the added benefit that we don't need to add
more dependencies to the CI image.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1497

5 years agoextensions-app: Add extension filtering
Florian Müllner [Wed, 11 Nov 2020 01:37:20 +0000 (02:37 +0100)]
extensions-app: Add extension filtering

It's possible for the list of installed extension to get long
enough to make searching more convenient than scrolling.

Support that by implementing the standard search pattern[0]
with a hidden search bar and a toggle in the headerbar.

[0] https://developer.gnome.org/hig/stable/search.html.en

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3382

5 years agoappDisplay: don't change grid page on adaptToSize
Daniel García Moreno [Thu, 12 Nov 2020 09:38:17 +0000 (10:38 +0100)]
appDisplay: don't change grid page on adaptToSize

If the adapt to size occurs after the grid page has been changed the
page is set to zero. This patch just keep the current page with the same
value that it has before.

Fix https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3388

5 years agoUpdate Portuguese translation
Juliano de Souza Camargo [Wed, 11 Nov 2020 14:29:12 +0000 (14:29 +0000)]
Update Portuguese translation

(cherry picked from commit e93b8263b03ed8bbb3829ad82ebf3664197740c9)

6 years agomodemManager: Add property getters
Popax21 [Thu, 15 Oct 2020 15:14:55 +0000 (15:14 +0000)]
modemManager: Add property getters

gjs improved its default property getter/setters, and as a result it
is no longer possible to set read-only properties.

Add proper getters (backed by private properties) to fix the resulting
errors.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3203

6 years agognome-shell.doap: Mailing list moved to Discouse per #3253
Olav Vitters [Mon, 2 Nov 2020 13:45:13 +0000 (14:45 +0100)]
gnome-shell.doap: Mailing list moved to Discouse per #3253

6 years agoUpdated Danish translation
Ask Hjorth Larsen [Sun, 1 Nov 2020 13:18:43 +0000 (14:18 +0100)]
Updated Danish translation

6 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sat, 31 Oct 2020 17:00:06 +0000 (17:00 +0000)]
Update Basque translation

6 years agoappDisplay: Only show add/remove favorite when shouldShowApp() is true
Ian Douglas Scott [Fri, 30 Oct 2020 16:57:40 +0000 (09:57 -0700)]
appDisplay: Only show add/remove favorite when shouldShowApp() is true

`shouldShowApp()` is called in `_addFavorite`, so adding a favorite when
this isn't true won't work. Also, it seems when this is false, favorites
that do exist won't be shown anyway.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3342

6 years agoextensions-app: Add quit action
Florian Müllner [Wed, 28 Oct 2020 20:42:48 +0000 (21:42 +0100)]
extensions-app: Add quit action

It's good practice to support the standard <ctrl>-q shortcut, so
add a corresponding action and set its accel accordingly.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3335

6 years agomagnifier: Avoid cursor visibility changes on startup
Carlos Garnacho [Wed, 28 Oct 2020 19:29:55 +0000 (20:29 +0100)]
magnifier: Avoid cursor visibility changes on startup

When initializing the shell, we create the magnifier, and (normally)
let it disabled. This still toggles cursor visibility on, which is
not right since there's other considerations to take during
initialization.

Only do this after actual changes to the magnifier state, so
initialization is left unperturbed.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1486

6 years agomessageTray: Don't play sound when banners are disabled
Florian Müllner [Tue, 27 Oct 2020 00:03:43 +0000 (01:03 +0100)]
messageTray: Don't play sound when banners are disabled

When support for notification sounds was added, it made some sense
to keep the 'enable-sound' setting independent from 'show-banners'.

However that changed when 'show-banners' was rebranded in the UI as
"Do Not Disturb", as sounds are at least as disturbing as the banners.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2873

6 years agoAdapt to pick changes
Georges Basile Stavracas Neto [Sat, 17 Oct 2020 15:34:22 +0000 (12:34 -0300)]
Adapt to pick changes

It turns out, StViewport's pick implementation was broken, since
Clutter stopped reading clipping from the framebuffer. Rejoice with
bugfixing by removing code!

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1470

6 years agowindowPreview: Handle case where window already is part of layout
Jonas Dreßler [Sat, 24 Oct 2020 18:51:56 +0000 (20:51 +0200)]
windowPreview: Handle case where window already is part of layout

We sometimes add dialogs multiple times to the WindowPreview, for
example for modal dialogs we receive both the "window-added" and the
"window-entered-monitor" signal, which means we call
WindowPreview.addDialog() twice.

We handle that fine already in the WindowPreviewLayout and return NULL
in case the window already was added, so simply handle that NULL return
value and bail out of WindowPreview.addDialog() in this case.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1482

6 years agompris: Switch text in title and body
Harry Míchal [Sat, 24 Oct 2020 15:07:10 +0000 (15:07 +0000)]
mpris: Switch text in title and body

Most media players have a media player that shows the title of a song
and artists in the song. In those media players the title is
highlighted (bold text) and the list of artists is under the title.
Shell does the exact opposite in the player in the notification area.

Example media players: Spotify, Rhythmbox, GNOME Music

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1480

6 years agotests/background-size: Remove ClutterActor::paint signal handler usage
Jonas Dreßler [Fri, 23 Oct 2020 20:05:13 +0000 (22:05 +0200)]
tests/background-size: Remove ClutterActor::paint signal handler usage

The background-size interactive test includes a test-case which uses the
ClutterActor::paint signal to hijack the painting of the actor. We're
removing that signal from Clutter, so remove that signal handler and
paint the outer border unconditionally to mark the boundaries of the
widget (the outer border actually never worked to force the cairo/cogl
path). To fix the test, change it to not paint a border on the inner
container in the useCairo=false case, which should make sure the cogl
path gets used.

Also remove the useless useCairo argument from addTestLine().

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1479

6 years agotelepathyClient: Promisify the right class
Florian Müllner [Thu, 22 Oct 2020 19:09:35 +0000 (21:09 +0200)]
telepathyClient: Promisify the right class

send_message_async() is a method of TpTextChannel, not the generic
TpChannel parent class.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3226

6 years agoUpdated Spanish translation
Daniel Mustieles [Thu, 22 Oct 2020 06:56:43 +0000 (08:56 +0200)]
Updated Spanish translation

6 years agoappDisplay: Don't expand title for search results
Georges Basile Stavracas Neto [Wed, 21 Oct 2020 20:20:59 +0000 (17:20 -0300)]
appDisplay: Don't expand title for search results

It creates quite a nasty visual inconsistency where the
search results' icon title overflows beneath the next
search section.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1477

6 years agoappDisplay: Let icon labels be multiline when hovered
Georges Basile Stavracas Neto [Wed, 21 Oct 2020 17:33:23 +0000 (14:33 -0300)]
appDisplay: Let icon labels be multiline when hovered

When hovered, remove constraints from the icon labels that
limit the number of lines. Do that inside a saved easing
state so that the allocation can ease the label.

This helps with applications with long titles.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/363

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1477